
using System;

namespace CUtil.Win32
{
#region Definition of the standard windows messages that might be useful.
	/// <summary>
	/// A definition for all of the native windows messages.</summary>
	/// <remarks>
	/// This enumeration defines all of the native windows 32 messages to allow them to be used
	/// from within the .NET framework.</remarks>
	public enum WindowsMessages
	{
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_ACTIVATE        =   (WindowsMessages.WM_USER + 1),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_SETDELAYTIME    =   (WindowsMessages.WM_USER + 3),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_ADDTOOLA        =   (WindowsMessages.WM_USER + 4),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_ADDTOOLW        =   (WindowsMessages.WM_USER + 50),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_DELTOOLA        =   (WindowsMessages.WM_USER + 5),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_DELTOOLW        =   (WindowsMessages.WM_USER + 51),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_NEWTOOLRECTA    =   (WindowsMessages.WM_USER + 6),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_NEWTOOLRECTW    =   (WindowsMessages.WM_USER + 52),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_RELAYEVENT      =   (WindowsMessages.WM_USER + 7),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETTOOLINFOA    =   (WindowsMessages.WM_USER + 8),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETTOOLINFOW    =   (WindowsMessages.WM_USER + 53),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_SETTOOLINFOA    =   (WindowsMessages.WM_USER + 9),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_SETTOOLINFOW    =   (WindowsMessages.WM_USER + 54),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_HITTESTA        =   (WindowsMessages.WM_USER +10),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_HITTESTW        =   (WindowsMessages.WM_USER +55),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETTEXTA        =   (WindowsMessages.WM_USER +11),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETTEXTW        =   (WindowsMessages.WM_USER +56),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_UPDATETIPTEXTA  =   (WindowsMessages.WM_USER +12),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_UPDATETIPTEXTW  =   (WindowsMessages.WM_USER +57),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETTOOLCOUNT    =   (WindowsMessages.WM_USER +13),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_ENUMTOOLSA      =   (WindowsMessages.WM_USER +14),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_ENUMTOOLSW      =   (WindowsMessages.WM_USER +58),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETCURRENTTOOLA =   (WindowsMessages.WM_USER + 15),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETCURRENTTOOLW =   (WindowsMessages.WM_USER + 59),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_WINDOWFROMPOINT =   (WindowsMessages.WM_USER + 16),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_TRACKACTIVATE   =   (WindowsMessages.WM_USER + 17), // wParam = TRUE/FALSE start end  lparam = LPTOOLINFO
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_TRACKPOSITION   =   (WindowsMessages.WM_USER + 18),  // lParam = dwPos
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_SETTIPBKCOLOR   =   (WindowsMessages.WM_USER + 19),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_SETTIPTEXTCOLOR =   (WindowsMessages.WM_USER + 20),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETDELAYTIME    =   (WindowsMessages.WM_USER + 21),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETTIPBKCOLOR   =   (WindowsMessages.WM_USER + 22),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETTIPTEXTCOLOR =   (WindowsMessages.WM_USER + 23),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_SETMAXTIPWIDTH  =   (WindowsMessages.WM_USER + 24),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETMAXTIPWIDTH  =   (WindowsMessages.WM_USER + 25),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_SETMARGIN       =   (WindowsMessages.WM_USER + 26), // lParam = lprc
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETMARGIN       =   (WindowsMessages.WM_USER + 27),  // lParam = lprc
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_POP             =   (WindowsMessages.WM_USER + 28),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_UPDATE          =   (WindowsMessages.WM_USER + 29),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETBUBBLESIZE   =   (WindowsMessages.WM_USER + 30),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_ADJUSTRECT      =   (WindowsMessages.WM_USER + 31),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_SETTITLEA       =   (WindowsMessages.WM_USER + 32),  // wParam = TTI_*, lParam = char* szTitle
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_SETTITLEW       =   (WindowsMessages.WM_USER + 33),  // wParam = TTI_*, lParam = wchar* szTitle
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_POPUP           =   (WindowsMessages.WM_USER + 34),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/ToolTip/Messages/TTM_ACTIVATE.htm">see Platform SDK</A></summary>
		TTM_GETTITLE        =   (WindowsMessages.WM_USER + 35), // wParam = 0, lParam = TTGETTITLE*
		/// <summary>
		/// An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore.
		/// </summary>
		WM_NULL				= 0x0000,
		
		/// <summary>
		/// The WM_CREATE message is sent when an application requests that a window be created.
		/// </summary>
		WM_CREATE			= 0x0001,
		
		/// <summary>
		/// The WM_DESTROY message is sent when a window is being destroyed. It is sent to the window procedure 
		/// of the window being destroyed after the window is removed from the screen.
		/// </summary>
		WM_DESTROY			= 0x0002,
		
		/// <summary>
		/// This message is sent after a window has been moved.
		/// </summary>
		WM_MOVE				= 0x0003,
		
		/// <summary>
		/// This message is sent to a window after it's size has changed.
		/// </summary>
		WM_SIZE				= 0x0005,
		
		/// <summary>
		/// This message is sent to both the window being activated and the one that is deactivated.
		/// </summary>
		WM_ACTIVATE			= 0x0006,

		/// <summary>
		/// This message is sent to a window after it has gained the keyboard focus. 
		/// </summary>
		WM_SETFOCUS			= 0x0007,

		/// <summary>
		/// This message is sent to a window immediately before it loses the keyboard focus.
		/// </summary>
		WM_KILLFOCUS		= 0x0008,

		/// <summary>
		/// </summary>
		WM_SETREDRAW		= 0x000B,

		/// <summary>
		/// 
		/// </summary>
		WM_PARENTNOTIFY		= 0x0210,

		/// <summary>
		/// This message is sent when the system or another application makes a request to paint a portion of the window.
		/// </summary>
		WM_PAINT			= 0x000F,

		/// <summary>
		/// This message is sent as a signal that a window or an application should terminate.
		/// </summary>
		WM_CLOSE			= 0x0010,

		/// <summary>
		/// This message indicates a request to terminate an application and is generated when the application calls 
		/// the PostQuitMessage function. It causes the GetMessage function to return zero. 
		/// </summary>
		WM_QUIT				= 0x0012,

		/// <summary>
		/// This message is sent when the window background must be erased (for example, when a window is resized). 
		/// The message is sent to prepare an invalidated portion of a window for painting. 
		/// </summary>
		WM_ERASEBKGND		= 0x0014,

		/// <summary>
		/// This message is sent to all top-level windows when a change is made to a system color setting. 
		/// </summary>
		WM_SYSCOLORCHANGE	= 0x0015,

		/// <summary>
		/// This message is sent to a window when the window is about to be hidden or shown.
		/// </summary>
		WM_SHOWWINDOW		= 0x0018,

		/// <summary>
		/// Use of this message is deprecated. Use WM_SETTINGCHANGE instead.
		/// </summary>
		WM_WININICHANGE		= 0x001A,

		/// <summary>
		/// The system sends this message to all top-level windows when the SystemParametersInfo function changes a 
		/// system-wide setting or when policy settings have changed. Applications should send this message to all 
		/// top-level windows when they make changes to system parameters. 
		/// This message cannot be sent directly to a window. To send this message to all top-level windows, use 
		/// the SendMessageTimeout function with the hwnd parameter set to HWND_BROADCAST. 
		/// </summary>
		WM_SETTINGCHANGE	= WM_WININICHANGE,

		/// <summary>
		/// This message is sent to all top-level windows whenever the user changes device-mode settings. 
		/// </summary>
		WM_DEVMODECHANGE	= 0x001B,

		/// <summary>
		/// The WM_ACTIVATEAPP message is sent when a window belonging to a different application than the active window 
		/// is about to be activated. The message is sent to the application whose window is being activated and to the 
		/// application whose window is being deactivated. 
		/// </summary>
		WM_ACTIVATEAPP      = 0x001C,

		/// <summary>
		/// The WM_MOUSEACTIVATE message is sent when the cursor is in an inactive window and the user presses a mouse button.
		/// </summary>
		WM_MOUSEACTIVATE	= 0x0021,

		/// <summary>
		/// The WM_DRAWITEM message is sent to the owner window of an owner-drawn button, combo box, list box, or menu 
		/// when a visual aspect of the button, combo box, list box, or menu has changed.
		/// </summary>
		WM_DRAWITEM			= 0x002B,

		/// <summary>
		/// The WM_MEASUREITEM message is sent to the owner window of an owner-drawn button, combo box, list box, or menu 
		/// when a visual aspect of the button, combo box, list box, or menu has changed.
		/// </summary>
		WM_MEASUREITEM		= 0x002C,

		/// <summary>
		/// The WM_NOTIFY message is sent by a common control to its parent window when an event has occurred or the 
		/// control requires some information. 
		/// </summary>
		WM_NOTIFY			= 0x004E,

		/// <summary>
		/// This message is sent to a window when the cursor moves, or when a mouse button is pressed or released.
		/// If the mouse is not captured, the message is sent to the window beneath the cursor. Otherwise, the 
		/// message is sent to the window that has captured the mouse. 
		/// </summary>
		WM_NCHITTEST		= 0x0084,

		/// <summary>
		/// The WM_NCPAINT message is sent to a window when its frame must be painted.
		/// </summary>
		WM_NCPAINT			= 0x0085,

		/// <summary>
		/// The WM_SYNCPAINT message is used to synchronize painting while avoiding linking independent GUI threads.
		/// </summary>
		WM_SYNCPAINT		= 0x0088,

		/// <summary>
		/// The WM_NCLBUTTONDOWN message is posted when the user presses the left mouse button while the cursor is within 
		/// the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has 
		/// captured the mouse, this message is not posted.
		/// </summary>
		WM_NCLBUTTONDOWN	= 0x00A1,

		/// <summary>
		/// The WM_NCLBUTTONDOWN message is posted when the user presses 
		/// the right mouse button while the cursor is within the nonclient 
		/// area of a window. 
		/// This message is posted to the window that contains the cursor. 
		/// If a window has captured the mouse, this message is not posted. 
		/// </summary>
		WM_NCRBUTTONDOWN	= 0x00A4,

		/// <summary>
		/// The WM_NCRBUTTONUP message is posted when the user releases the 
		/// right mouse button while the cursor is within the nonclient area of a window. 
		/// This message is posted to the window that contains the cursor. 
		/// If a window has captured the mouse, this message is not posted. 
		/// see winuser.h file for values.
		/// </summary>
		WM_NCRBUTTONUP			= 0x00A5,
		
		/// <summary>
		/// The WM_NCLBUTTONDBLCLK message is posted when the user double-clicks the left 
		/// mouse button while the cursor is within the nonclient area of a window. 
		/// This message is posted to the window that contains the cursor. 
		/// If a window has captured the mouse, this message is not posted. 
		/// see winuser.h file for values.
		/// </summary>
		WM_NCLBUTTONDBLCLK		= 0x00A3,
		
		/// <summary>
		/// The WM_KEYUP message is posted to the window with the keyboard focus when a nonsystem key is released.
		/// </summary>
		WM_KEYUP			= 0x0101,

		/// <summary>
		/// 
		/// </summary>
		WM_COMMAND			= 0x0111,
		
		/// <summary>
		/// A window receives this message when the user chooses a command from the window menu (formerly known as the 
		/// system or control menu) or when the user chooses the maximize button, minimize button, restore button, or close button.
		/// </summary>
		WM_SYSCOMMAND		= 0x0112,
		
		/// <summary>
		/// The WM_TIMER message is posted to the installing thread's message queue when a timer expires. The 
		/// message is posted by the GetMessage or PeekMessage function.
		/// </summary>
		WM_TIMER			= 0x0113,
		
		/// <summary>
		/// The WM_HSCROLL message is sent to a window when a scroll event occurs in the window's standard horizontal scroll bar. 
		/// This message is also sent to the owner of a horizontal scroll bar control when a scroll event occurs in the control.
		/// </summary>
		WM_HSCROLL			= 0x0114,
		
		/// <summary>
		/// The WM_VSCROLL message is sent to a window when a scroll event occurs in the window's standard vertical scroll bar. 
		/// This message is also sent to the owner of a vertical scroll bar control when a scroll event occurs in the control.
		/// </summary>
		WM_VSCROLL			= 0x0115,

		/// <summary>
		/// Here starts the section with the mouse related windows messages.
		/// </summary>
		WM_MOUSEFIRST		= 0x0200,
		
		/// <summary>
		/// The WM_MOUSEMOVE message is posted to a window when the cursor moves. If the mouse is not captured, the message is 
		/// posted to the window that contains the cursor. Otherwise, the message is posted to the window that has captured the mouse. 
		/// </summary>
		WM_MOUSEMOVE		= WM_MOUSEFIRST,
		
		/// <summary>...</summary>
		WM_LBUTTONDOWN		= WM_MOUSEFIRST + 0x01,
		/// <summary>...</summary>
		WM_LBUTTONUP		= WM_MOUSEFIRST + 0x02,
		/// <summary>...</summary>
		WM_LBUTTONDBLCLK	= WM_MOUSEFIRST + 0x03,
		/// <summary>...</summary>
		WM_RBUTTONDOWN		= WM_MOUSEFIRST + 0x04,
		/// <summary>...</summary>
		WM_RBUTTONUP		= WM_MOUSEFIRST + 0x05,
		/// <summary>...</summary>
		WM_RBUTTONDBLCLK	= WM_MOUSEFIRST + 0x06,
		/// <summary>...</summary>
		WM_MBUTTONDOWN		= WM_MOUSEFIRST + 0x07,
		/// <summary>...</summary>
		WM_MBUTTONUP		= WM_MOUSEFIRST + 0x08,
		/// <summary>...</summary>
		WM_MBUTTONDBLCLK	= WM_MOUSEFIRST + 0x09,
		/// <summary>...</summary>
		WM_MOUSEWHEEL		= WM_MOUSEFIRST + 0x0A,
		/// <summary>...</summary>
		WM_XBUTTONDOWN		= WM_MOUSEFIRST + 0x0B,
		/// <summary>...</summary>
		WM_XBUTTONUP		= WM_MOUSEFIRST + 0x0C,
		/// <summary>...</summary>
		WM_XBUTTONDBLCLK	= WM_MOUSEFIRST + 0x0D,
		/// <summary>...</summary>
		WM_MOUSEHOVER		= WM_MOUSEFIRST + 0xA1,
		/// <summary>...</summary>
		WM_MOUSELEAVE		= WM_MOUSEFIRST + 0xA3,
		/// <summary>...</summary>
		WM_MOUSELAST		= WM_MOUSELEAVE,

		/// <summary>
		/// The WM_PRINT message is sent to a window to request that it draw itself in the specified device context, most commonly 
		/// in a printer device context.
		/// </summary>
		WM_PRINT			= 0x0317,
		
		/// <summary>
		/// The WM_PRINTCLIENT message is sent to a window to request that it draw its client area in the specified device 
		/// context, most commonly in a printer device context.
		/// </summary>
		WM_PRINTCLIENT		= 0x0318,

		/// <summary>
		/// The WM_USER message starts the area for user-defined messages
		/// </summary>
		WM_USER             = 0x0400,

		// Here starts the section with the browser folder view related windows messages.
		/// <summary></summary>
		BFFM_SETSELECTION = (WM_USER + 103),
		/// <summary></summary>
		BFFM_SETSTATUSTEXT	= (WM_USER + 104),

		// Here starts the section with toolbar related windows messages.
		/// <summary></summary>
		TB_GETHOTITEM		= (WM_USER + 71),
		/// <summary></summary>
		TB_ISBUTTONPRESSED	= (WM_USER + 11),

		/// <summary>
		/// Here starts the section with the list view related windows messages.
		/// </summary>
		LVM_FIRST 						= 0x1000,
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		LVM_SETITEMCOUNT 				= (LVM_FIRST + 47),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		LVM_GETITEMSTATE 				= (LVM_FIRST + 44),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		LVM_GETITEMPOSITION 			= (LVM_FIRST + 16),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		LVM_GETITEMRECT 				= (LVM_FIRST + 14),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		LVM_GETSTRINGWIDTH 				= (LVM_FIRST + 87),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		LVM_EDITLABEL 					= (LVM_FIRST + 118),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		LVM_SETEXTENDEDLISTVIEWSTYLE 	= (LVM_FIRST + 54),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		LVM_GETEXTENDEDLISTVIEWSTYLE 	= (LVM_FIRST + 55),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		LVM_INSERTITEMW 				= (LVM_FIRST + 77),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		LVM_SETITEMSTATE 				= (LVM_FIRST + 43),
		/// <summary> TreeView messages ! see Platform SDK</summary>
		TV_FIRST             =   0x1100,		      
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_INSERTITEMA      =  (TV_FIRST + 0),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_INSERTITEMW      =  (TV_FIRST + 50),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_DELETEITEM       =  (TV_FIRST + 1),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_EXPAND           =  (TV_FIRST + 2),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_GETITEMRECT      =  (TV_FIRST + 4),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_GETCOUNT         =  (TV_FIRST + 5),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_GETINDENT        =  (TV_FIRST + 6),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_SETINDENT        =  (TV_FIRST + 7),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_GETIMAGELIST     =  (TV_FIRST + 8),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_SETIMAGELIST     =  (TV_FIRST + 9),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_GETNEXTITEM      =  (TV_FIRST + 10),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_SELECTITEM       =  (TV_FIRST + 11),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_GETITEMA         =  (TV_FIRST + 12),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_GETITEMW         =  (TV_FIRST + 62),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_SETITEMA         =  (TV_FIRST + 13),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_SETITEMW         =  (TV_FIRST + 63),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_EDITLABELA       =  (TV_FIRST + 14),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_EDITLABELW       =  (TV_FIRST + 65),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_GETEDITCONTROL   =  (TV_FIRST + 15),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_GETVISIBLECOUNT  =  (TV_FIRST + 16),
		/// <summary><A HREF="ms-help://MS.VSCC/MS.MSDNVS/shellcc/platform/CommCtls/Common/Common.htm">see Platform SDK</A></summary>
		TVM_HITTEST          =  (TV_FIRST + 17)
	}
#endregion

#region Return codes for the mouse activate message.
	/// <summary>
	/// The return value of a mouse activation message specifies whether the window should be activated and 
	/// whether the identifier of the mouse message should be discarded. It must be one of the following values.
	/// </summary>
	public class MouseActivateMessageReturnCode
	{
		/// <summary>
		/// Activates the window, and does not discard the mouse message.
		/// </summary>
		public const int MA_ACTIVATE         = 1;

		/// <summary>
		/// Activates the window, and discards the mouse message.
		/// </summary>
		public const int MA_ACTIVATEANDEAT   = 2;

		/// <summary>
		/// Does not activate the window, and does not discard the mouse message.
		/// </summary>
		public const int MA_NOACTIVATE       = 3;

		/// <summary>
		/// Does not activate the window, but discards the mouse message.
		/// </summary>
		public const int MA_NOACTIVATEANDEAT = 4;
	}
#endregion

#region Definition for the possible windows styles from the Win32-API
	/// <summary>
	/// The standard windows styles as defined in the Microsoft Windows Platform SDK.
	/// </summary>
	public class WindowStyle
	{
		/// <summary>
		/// 
		/// </summary>
		public const int WS_OVERLAPPED       = 0x00000000;
		/// <summary>
		/// 
		/// </summary>
		public const int WS_POPUP            = unchecked((int) 0x80000000);

		/// <summary>
		/// Creates a child window. Cannot be used with the WS_POPUP style.
		/// </summary>
		public const int WS_CHILD            = 0x40000000;
		/// <summary>
		/// 
		/// </summary>
		public const int WS_MINIMIZE         = 0x20000000;
		/// <summary>
		/// 
		/// </summary>
		public const int WS_VISIBLE          = 0x10000000;

		/// <summary>
		/// Creates a window that is initially disabled.
		/// </summary>
		public const int WS_DISABLED         = 0x08000000;

		/// <summary>
		/// Clips child windows relative to each other; that is, when a particular child window receives a paint message, 
		/// the WS_CLIPSIBLINGS style clips all other overlapped child windows out of the region of the child window to 
		/// be updated. (If WS_CLIPSIBLINGS is not given and child windows overlap, when you draw within the client area 
		/// of a child window, it is possible to draw within the client area of a neighboring child window.)
		/// For use with the WS_CHILD style only.
		/// </summary>
		public const int WS_CLIPSIBLINGS     = 0x04000000;

		/// <summary>
		/// Excludes the area occupied by child windows when you draw within the parent window. 
		/// Used when you create the parent window.
		/// </summary>
		public const int WS_CLIPCHILDREN     = 0x02000000;

		/// <summary>
		/// Creates a window of maximum size.
		/// </summary>
		public const int WS_MAXIMIZE         = 0x01000000;

		/// <summary>
		/// Creates a window that has a border.
		/// </summary>
		public const int WS_BORDER           = 0x00800000;

		/// <summary>
		/// Creates a window with a double border but no title.
		/// </summary>
		public const int WS_DLGFRAME         = 0x00400000;

		/// <summary>
		/// 
		/// </summary>
		public const int WS_VSCROLL          = 0x00200000;

		/// <summary>
		/// Creates a window that has a horizontal scroll bar.
		/// </summary>
		public const int WS_HSCROLL          = 0x00100000;

		/// <summary></summary>
		public const int WS_SYSMENU          = 0x00080000;

		/// <summary></summary>
		public const int WS_THICKFRAME       = 0x00040000;
		/// <summary></summary>
		public const int WS_GROUP            = 0x00020000;
		/// <summary></summary>
		public const int WS_TABSTOP          = 0x00010000;

		/// <summary></summary>
		public const int WS_MINIMIZEBOX      = 0x00020000;

		/// <summary>
		/// Creates a window that has a Maximize button.
		/// </summary>
		public const int WS_MAXIMIZEBOX      = 0x00010000;

		/// <summary></summary>
		public const int WS_TILED            = WS_OVERLAPPED;
		/// <summary></summary>
		public const int WS_ICONIC           = WS_MINIMIZE;
		/// <summary></summary>
		public const int WS_SIZEBOX          = WS_THICKFRAME;
		/// <summary></summary>
		public const int WS_TILEDWINDOW      = WS_OVERLAPPEDWINDOW;
		/// <summary></summary>
		public const int WS_CHILDWINDOW      = WS_CHILD;

		/// <summary>
		/// Creates a window that has a title bar (implies the WS_BORDER style).
		/// Cannot be used with the WS_DLGFRAME style.
		/// </summary>
		public const int WS_CAPTION          = (WS_BORDER | WS_DLGFRAME);

		/// <summary></summary>
		public const int WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX);

		/// <summary></summary>
		public const int WS_POPUPWINDOW      = (WS_POPUP | WS_BORDER | WS_SYSMENU);
	}
#endregion

#region Definition for the possible extended windows styles from the Win32-API
	/// <summary>
	/// The extended windows styles as defined in the Microsoft Windows Platform SDK.</summary>
	/// <remarks>
	/// Note that not all of the values defined in this class are available on every
	/// Windows platform. Some only apply to Win2K or WinXP.</remarks>
	public class WindowStyleEx
	{
		/// <summary></summary>
		public const int WS_EX_DLGMODALFRAME     = 0x00000001;
		/// <summary></summary>
		public const int WS_EX_NOPARENTNOTIFY    = 0x00000004;
		/// <summary></summary>
		public const int WS_EX_TOPMOST           = 0x00000008;
		/// <summary></summary>
		public const int WS_EX_ACCEPTFILES       = 0x00000010;
		/// <summary></summary>
		public const int WS_EX_TRANSPARENT       = 0x00000020;
		/// <summary></summary>
		public const int WS_EX_MDICHILD          = 0x00000040;
		/// <summary></summary>
		public const int WS_EX_TOOLWINDOW        = 0x00000080;
		/// <summary></summary>
		public const int WS_EX_WINDOWEDGE        = 0x00000100;
		/// <summary></summary>
		public const int WS_EX_CLIENTEDGE        = 0x00000200;
		/// <summary></summary>
		public const int WS_EX_CONTEXTHELP       = 0x00000400;
		/// <summary></summary>
		public const int WS_EX_RIGHT             = 0x00001000;
		/// <summary></summary>
		public const int WS_EX_LEFT              = 0x00000000;
		/// <summary></summary>
		public const int WS_EX_RTLREADING        = 0x00002000;
		/// <summary></summary>
		public const int WS_EX_LTRREADING        = 0x00000000;
		/// <summary></summary>
		public const int WS_EX_LEFTSCROLLBAR     = 0x00004000;
		/// <summary></summary>
		public const int WS_EX_RIGHTSCROLLBAR    = 0x00000000;
		/// <summary></summary>
		public const int WS_EX_CONTROLPARENT     = 0x00010000;
		/// <summary></summary>
		public const int WS_EX_STATICEDGE        = 0x00020000;
		/// <summary></summary>
		public const int WS_EX_APPWINDOW         = 0x00040000;
		/// <summary></summary>
		public const int WS_EX_LAYERED           = 0x00080000;
		/// <summary></summary>
		public const int WS_EX_NOINHERITLAYOUT   = 0x00100000;
		/// <summary></summary>
		public const int WS_EX_LAYOUTRTL         = 0x00400000;
		/// <summary></summary>
		public const int WS_EX_COMPOSITED        = 0x02000000;
		/// <summary></summary>
		public const int WS_EX_NOACTIVATE        = 0x08000000;

		/// <summary>Combined styles as defined in the platform SDK</summary>
		public const int WS_EX_OVERLAPPEDWINDOW  = (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE);
		/// <summary></summary>
		public const int WS_EX_PALETTEWINDOW     = (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST);
	}
#endregion

	/// <summary>
	/// WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes
	/// </summary>
	public class NCHitTestReturnCodes
	{
		/// <summary></summary>
		public const int HTERROR		= -2;
		/// <summary></summary>
		public const int HTTRANSPARENT	= -1;
		/// <summary></summary>
		public const int HTNOWHERE		= 0;
		/// <summary></summary>
		public const int HTCLIENT		= 1;
		/// <summary></summary>
		public const int HTCAPTION		= 2;
		/// <summary></summary>
		public const int HTSYSMENU		= 3;
		/// <summary></summary>
		public const int HTGROWBOX		= 4;
		/// <summary></summary>
		public const int HTSIZE			= HTGROWBOX;
		/// <summary></summary>
		public const int HTMENU			= 5;
		/// <summary></summary>
		public const int HTHSCROLL		= 6;
		/// <summary></summary>
		public const int HTVSCROLL		= 7;
		/// <summary></summary>
		public const int HTMINBUTTON	= 8;
		/// <summary></summary>
		public const int HTMAXBUTTON	= 9;
		/// <summary></summary>
		public const int HTLEFT			= 10;
		/// <summary></summary>
		public const int HTRIGHT		= 11;
		/// <summary></summary>
		public const int HTTOP			= 12;
		/// <summary></summary>
		public const int HTTOPLEFT		= 13;
		/// <summary></summary>
		public const int HTTOPRIGHT		= 14;
		/// <summary></summary>
		public const int HTBOTTOM		= 15;
		/// <summary></summary>
		public const int HTBOTTOMLEFT	= 16;
		/// <summary></summary>
		public const int HTBOTTOMRIGHT	= 17;
		/// <summary></summary>
		public const int HTBORDER		= 18;
		/// <summary></summary>
		public const int HTREDUCE		= HTMINBUTTON;
		/// <summary></summary>
		public const int HTZOOM			= HTMAXBUTTON;
		/// <summary></summary>
		public const int HTSIZEFIRST	= HTLEFT;
		/// <summary></summary>
		public const int HTSIZELAST		= HTBOTTOMRIGHT;
		/// <summary></summary>
		public const int HTOBJECT		= 19;
		/// <summary></summary>
		public const int HTCLOSE		= 20;
		/// <summary></summary>
		public const int HTHELP			= 21;
	}
}